package com.yxw.yx_hotel.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @author liuxin
 * @date 2023.0913
 */
@EqualsAndHashCode(callSuper = false)
@Data
@ToString(callSuper=true)
@ApiModel(value="AddStayWaitDto", description="待住名单增Dto")
public class AddStayWaitDto implements Serializable {

    @ApiModelProperty(value = "待住ID（更新时使用）")
    private Long stayWaitId;

    @NotBlank(message = "员工姓名不能为空")
    @ApiModelProperty(value = "员工姓名")
    private String userName;

    @NotBlank(message = "员工工号不能为空")
    @ApiModelProperty(value = "员工工号")
    private String userNum;

    @NotNull(message = "性别不能为空")
    @ApiModelProperty(value = "性别 0：女 1：男")
    private Integer sex;

    @NotBlank(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号")
    private String phone;

    @NotBlank(message = "身份证号不能为空")
    @ApiModelProperty(value = "身份证号")
    private String idCard;

    @NotNull(message = "所属部门不能为空")
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    @NotBlank(message = "所属部门不能为空")
    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @NotNull(message = "岗位Id不能为空")
    @ApiModelProperty(value = "岗位")
    private Long postId;

    @NotBlank(message = "岗位名称不能为空")
    @ApiModelProperty(value = "岗位")
    private String postName;

    @NotNull(message = "员工状态不能为空")
    @ApiModelProperty(value = "员工状态 1：实习 2：正式 3：临时")
    private Integer userState;

    @NotNull(message = "入住时间不能为空")
    @ApiModelProperty(value = "入住时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stayTime;

    @ApiModelProperty(value = "退住时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date retreatTime;

    @NotNull(message = "宿舍Id不能为空")
    @ApiModelProperty(value = "宿舍Id")
    private Long roomId;

    @ApiModelProperty(value = "宿舍名称")
    private String roomName;

    @NotNull(message = "床位Id不能为空")
    @ApiModelProperty(value = "床位Id")
    private Long bedId;

    @ApiModelProperty(value = "床位名称")
    private String bedRoom;

    @ApiModelProperty(value = "是否需要缴纳押金 0：否 1：是")
    private Integer payStatus;

    @ApiModelProperty(value = "备注")
    private String note;
}
